package com.sc.server.system.common.config.mybatisPls;

import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import com.sc.server.system.common.utils.UserUtils;
import org.apache.ibatis.reflection.MetaObject;
import org.springframework.stereotype.Component;

import java.util.Date;

/**  自定义填充公共 name 字段  */
@Component
public class MyMetaObjectHandler extends MetaObjectHandler {

    /**
     * 测试 user 表 name 字段为空自动填充
     */
    @Override
    public void insertFill(MetaObject metaObject) {
        // 更多查看源码测试用例
        System.out.println("*************************");
        System.out.println("insert fill");
        System.out.println("*************************");
        // 测试下划线
        Object createDt = getFieldValByName("createTime", metaObject);
        if (createDt == null) {
            setFieldValByName("createTime", new Date(), metaObject);
        }
        Object creator = getFieldValByName("creator", metaObject);
        if (creator == null) {
            setFieldValByName("creator", UserUtils.getUserId()+"", metaObject);
        }
    }

    @Override
    public void updateFill(MetaObject metaObject) {
        //更新填充
      /*  Object updateDt = getFieldValByName("updateTime", metaObject);//mybatis-plus版本2.0.9+
        if (updateDt == null) {
            setFieldValByName("updateTime", new Date(), metaObject);//mybatis-plus版本2.0.9+
        }*/

    }
}